Method for processing ATM cells and a device having ATM cell processing capabilities

ABSTRACT

A method and a communication device for processing ATM cells. The communication device includes an input interface adapted to receive an ATM cell that is associated with a PHY value and includes a pair of VCI and VPI fields. The communication device is characterized by comprising a search unit, adapted to search, within a group of memory entries that belong to a memory unit, for a pair of VCI and VPI fields that have values that match the values of the VCI and VPI fields of the received ATM cell, if the received VCI field and VPI fields belong to a first predefined group of VCI and VPI fields. The communication device further includes a processor, connected to the search unit, wherein the processor is adapted to determine a channel identifier of the received ATM cell in response to a result of the search and in response to a PHY value associated with the received ATM cell.

FIELD OF THE INVENTION

The invention relates to a device having ATM cell processingcapabilities and to a method for processing ATM cells.

BACKGROUND OF THE INVENTION

In today's communications, digital networks transport large amounts ofinformation. Network services can be, for example, traditional voicephone, facsimile, television, audio and video broadcast, and datatransfer.

With the increasing need of information exchange in the global society,the capacity of existing and future networks must be used efficiently.Multiplexers switch different network services to a single network insuch a way that every service is fully maintained and does not disturbother services.

Asynchronous Transfer Mode (ATM) is one of the most commonly usedcommunication protocols. ATM is a connection-oriented protocol. ATMprotocol assigns virtual channels to each ATM cell. The virtual channelis supported by a physical link. ATM protocol compliant devices processinformation by framing the information to ATM cells. An ATM cellincludes a payload as well as a header. The header includes variousfields that map the ATM cell to the virtual channel. These fieldsinclude the virtual channel identifier (VCI) field and the virtual pathidentifier (VPI) field.

The ATM cell is associated with a physical layer (PHY) value thatrepresents the physical link on which the ATM cell arrives or originatedfrom. A device, such as a media access unit, an UTOPIA bus manager aswell as an ATM switch associate the PHY value with the ATM cell.

The VCI field is twelve bits long, the VCI field is sixteen bits longand the PHY value is five bits long. It is noted that the PHY value canbe longer. Thus, there are at least 2³³ possible combinations of thesefields. When an ATM switch or router receives an ATM cell it has todetermine what is the channel associated with that ATM cell.Theoretically there are 2³³ possible channels, while in practice thenumber of connections supported by a single ATM switch is much lower.

Various methods were adopted for mapping the very large number ofpossible channels with a smaller number of channels. One commonly usedtechnique involves hashing. A hashing function maps the 2³³ space to amuch smaller space. The following U.S. patents and patent applications,all being incorporated herein by reference, illustrate some hashingtechniques: U.S. Pat. No. 6,034,958 of Wicklund, U.S. patent applicationpublication serial number 2004/0246966A1 of Wu et al., U.S. patentapplication serial number 2004/0131062A1 of Horie, U.S. Pat. No.6,760,345 of Rosengard, U.S. Pat. No. 6,735,191 of Hosein, U.S. patentapplication serial number 2004/0001451 of Bernheim et al., U.S. patentapplication serial number 2003/0043806A1 of Davis et al., U.S. patentapplication serial number 2003/0081610A1 of Bharucha et al., and U.S.Pat. No. 6,535,526 of Oyamada et al.

Typical hashing functions require a relatively large number of memoryaccesses and data processing stages.

There is a need to provide efficient methods and devices for processingATM cells.

SUMMARY OF THE PRESENT INVENTION

A device having ATM cell processing capabilities and for a method forprocessing ATM cells, as described in the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood and appreciated more fully fromthe following detailed description taken in conjunction with thedrawings in which:

FIG. 1 illustrates a communication network, according to an embodimentof the invention;

FIG. 2 illustrates a communication device, according to an embodiment ofthe invention;

FIG. 3 illustrates a communication engine, according to an embodiment ofthe invention;

FIG. 4 illustrates an exemplary configuration of the communicationdevice, and its environment, according to an embodiment of theinvention;

FIG. 5 illustrates a portion of the communication device, according toan embodiment of the invention;

FIG. 6 illustrates exemplary data structures, according to an embodimentof the invention;

FIG. 7 illustrates exemplary data structures, according to an embodimentof the invention; and

FIG. 8 is a flow chart of a method for processing ATM cells, accordingto an embodiment of the invention.

DETAILED DESCRIPTION OF THE DRAWINGS

A method for processing ATM cells and a communication device. The methodand the communication device simplify the processing of ATM cells,especially when the communication device is used to process ATM cellsthat are exchanged with users that have a small number of devices.Conveniently, when servicing multiple users that are differentiatedmainly by their PHY field values, one or more small groups of memoryentries (also referred to as VCI/VPI tables) can be allocated forsearching for matching VCI and VPI field values.

Conveniently, different users are associated with VCI/VPI fields valuesthat are selected from a relatively small group of allowable VCI/VPIfields values. The group is much smaller that the number of possibleVCI/VPI combinations, and especially can be smaller than one thousand oreven one hundred.

According to an embodiment of the invention a communication device isprovided. The communication device includes an input interface that isadapted to receive an ATM cell. The ATM cell includes a pair of VCI andVPI fields. The communication device further includes a search unit thatis adapted to search, within a group of memory entries that belong to amemory unit, for a pair of VCI and VPI fields that match the VCI and VPIfields of the received ATM cell. Conveniently the search is conducted ifthe values of the received VCI and VPI fields belong to a firstpredefined group of allowed VCI field and VPI field values. Thecommunication device also includes a processor that is connected to thesearch unit, whereas the processor is adapted to determine a channelidentifier of the received ATM cell in response to a result of thesearch and in response to a PHY value associated with the received ATMcell. The device can associated that PHY value to the ATM cell but thisis not necessarily so.

According to an embodiment of the invention a method is provided. Themethod includes: (i) receiving an ATM cell that includes a pair of VCIand VPI fields, (ii) searching, within a group of memory entries, for apair of VCI and VPI fields that match the VCI and VPI fields of thereceived ATM cell, if a values of the received pair of VCI and VPIfields belong to a first predefined group of allowed VCI and VPI fieldsvalues; and determining a channel identifier of the received ATM cell inresponse to a result of the searching and in response to a PHY valueassociated with the received ATM cell.

FIG. 1 illustrates a communication network 100 according to anembodiment of the invention.

Communication network 100 is connected to many user devices (denoted104). The communication network 100 can include one or more accessnetworks 101 as well as backbone network 102. The access networks 101,backbone network 102, as well as the interface between the accessnetworks 101 and backbone network 102 can include one or more switchesor routers. Conveniently, theses switches or routers includecommunication devices such as communication device 10 of FIG. 2. Acommunication device 10 can include one or more integrated circuits suchas the PowerQuicc™ communication integrated circuits of Freescale™ Inc.

Communication network 100 can service a large variety of users as wellas a large number of users. Many users can be domestic users orotherwise users that are characterized by having a relatively smallnumber of devices (denoted 104). A dashed box surrounds the devices thatbelong to a single user. Each user can be associated with a unique PHYvalue. Various switches and routers within the various networks canassign different PHY values to the same user, as long as they are ableto differentiate between traffic that originates from different users. Asmall number of combinations of VCI field and VPI fields are allocatedper user. Conveniently, a small amount of VCI/VPI values is allocatedfor a large number of users.

An exemplary ATM cell 105 is also illustrated. It has payload 103, a VCIfield 106, VPI field 107. ATM cell 103 is associated with a PHY valuethat is not shown in FIG. 1.

The values of these fields can be changed by each switch or router. Itis assumed that the values of the pair of VCI and VPI fields 106 and 107belong to a first predefined group of allowed VCI and VPI field pairvalues. It is noted that a value of a pair of VCI and VPI field is thecombination of the value of the VCI field and the value of the VPIfield. Conveniently, ATM cell 105 belongs to a group of ATM cells thatcan be efficiently processed by using a VCI/VPI table 500 of FIG. 6.

FIG. 2 illustrates a communication device 10, according to an embodimentof the invention.

Communication device 10 includes a first processor, such asgeneral-purpose processor 180, a security engine 170, system interfaceunit 140, communication engine 200 and multiple ports (not shown).Components 180, 170, 140 and 200 are connected to each other by centralbus 190.

The general-purpose processor 180 can include multiple execution unitssuch as but not limited to an integer unit, a branch processing unit, afloating point unit, a load/store unit and a system register unit. Itcan also include various cache memories, dynamic power management unit,translation look aside buffers, and the like.

The general-purpose processor 180 controls the communication device 10and can execute various programs according to the required functionalityof communication device 10. The general-purpose processor 180 can be amember of the PowerPC™ family but this is not necessarily so.

The security engine 170 can apply various security mechanisms includingencryption based mechanisms and the like.

Communication device 10 can be connected to multiple memory units aswell as other components. These components are interfaced by systeminterface unit 140. System interface unit 140 may include some of thefollowing components: external memory controllers 142, external DDRinterface unit 144, PCI bridge 146, local bus 148, bus arbitrator 150,Dual UART unit 152, dual I²C unit 154, a four channel DMA 156, interruptcontroller 158, protection and configuration unit 160, system reset unit162 and clock synthesizer 164. It is noted that other interfacingcomponents can be used.

FIG. 3 illustrates a communication engine 200, according to anembodiment of the invention.

It is noted that FIG. 3 illustrates an embodiment of the invention andthat other communication engines (including those who have a singleprocessor or more that two processors) can be used.

The communication engine 200 is a versatile communication component thatcan manage multiple communication ports that operate according todifferent communication protocols. It includes two RISC processors 220and 222 that can work substantially independently from each other.

The communication engine 200 includes two RISC processors 220 and 222,two DMA controllers 210, a shared data RAM memory unit 230, a sharedinstruction RAM memory unit 232, eight universal communicationcontrollers denoted UCC1-UCC8 241-248, one multi-channel communicationcontroller (MCC) 251, two serial peripheral interfaces denoted SP1-SP2252-253, two UTOPIA POS controllers 261 and 262, two time slot assigners264 and 266 and two communication interfaces 270 and 274. Time slotassigner 264 assigns time slots for accessing communication interface270. Time slot assigner 266 assigns time slots for accessingcommunication interface 274.

The first communication interface 270 is connected to multiple timedivision multiplex (TDM) ports that are collectively denoted 271, aUTOPIA-packet over SONET (POS) port 272, as well as four RMII portscollectively denoted 273, and four NMSI ports collectively denoted 274.

The second communication interface 274 is connected to anotherUTOPIA-packet over SONET (POS) port 275, four RMII ports collectivelydenoted 276, and four NMSI ports collectively denoted 274. It is notedthat other communication protocols can be supported by communicationdevice 10.

Each RISC processor out of 220 and 222 can access the shared data RAMmemory unit 230 and the shared instruction RAM memory unit 232. RISCprocessor 220 can control half of the multiple communication controllersand ports. For example, RISC processor 220 can control UCC1-UCC4241-244, MCC 251 and SPIL 252. It can also communicate with UTPOIA POScontroller 260 and time slot assigner 264.

Conveniently, a UCC can support the following communication protocolsand interfaces (not all simultaneously): 10/100 Mbps Ethernet, 1000 MpbsEthernet, IPv4 and IPv6, L2 Ethernet switching using, ATM protocol viaUTOPIA interface, various types of HDLC, UART, and BISYNC.

Conveniently, MCC 251 supports two hundred and fifty six HDLC ortransparent channels, one hundred and twenty eight SS#7 channels ormultiple channels that can be multiplexed to one or more TDM interfaces.

In addition, the communication engine 200 can include a controller (notshown) as well as an interrupt unit that coordinate the variouscomponents of the communication engine, as well as to enable thecommunication engine 200 to communicate with general-purpose processor110, security engine 62 and system interface unit 140.

The first RISC processor 220 is connected to a first hardwareaccelerator 223. The first hardware accelerator 223 can access theshared data RAM memory unit 230. The second RISC processor 222 isconnected to a second hardware accelerator 224. The second hardwareaccelerator 224 can access the shared data RAM memory unit 230. Eachaccelerator can include a search unit. This search unit searches formatches between the VCI and VPI fields of a received ATM cell and theVCI and VPI fields stored in a VCI/VPI table 500.

FIG. 4 illustrates an exemplary configuration of communication device10, and its environment, according to an embodiment of the invention.

Communication device 10 is illustrated as supporting a data path of aDSL line card 802. The DSL line card 802 is a part of access network 101of FIG. 1.

Line card 802 also includes two DDR DRAM units 810 and 820, as well as aflash memory unit 830, all being connected to communication device 10via the system interface unit 140.

The communication engine 200 is configured as an xDSL line card and isconnected to multiple Ethernet PHY units 831 and 832, as well as tomultiple ADSL PHY units 840. The communication device 10 supports ATMmulti-PHY subscriber lines and an Ethernet uplink.

FIG. 5 illustrates a portion 120 of communication engine 200 accordingto an embodiment of the invention.

Portion 120 includes input interface 122, search unit 124, processor 126and memory unit 128. These components can be connected in variousmanners. Processor 126 can be either one of first RISC processor 220 andsecond RISC processor 222. Search unit 124 can be a portion of first orsecond hardware accelerators 223 and 224. The memory unit 128 can be theshared data RAM memory unit 230. The input interface 122 can include oneor more of the various components of communication engine 200, such asone of the UCCs 241-248, or MCC 215, but this is not necessarily so.

Conveniently, the processor 126 is connected to input interface 122,search unit 124 and memory unit 128 and is capable of coordinatingbetween these various components.

Input interface 122 is adapted to receive ATM cells. It can include PHYlayer components, MAC layer components and higher layer networkcomponents. The higher layer network components are used to retrieve theVCI field and the VPI field of the received ATM cell. They are alsoadapted to assign PHY values with received ATM cells. Input interface122 can include local memory units, buffer management components, CRCcomponents and the like.

According to an embodiment of the invention the search unit 124 is apart of a hardware accelerator. According to other embodiments of theinvention the search can be executed by processor 126, or by componentsother that the search unit 124. It is noted that having a dedicatedhardware search unit can speed the searching process. It is also notedthat search unit 124 can have additional capabilities such as minimumand maximum determination, CRC capabilities and the like.

Search unit 124 can access a group of memory entries of memory unit 128and search for a match between the VCI and VPI fields of the receive ATMcell and the VCI/VPI fields stored in a selected group of memoryentries. The selected group of memory entries is also referred to asVCI/VPI table 500. The comparators compare between the VCI and VPIfields of the receive ATM cell and the values of VCI and VPI fieldsstored in the selected VCI/VPI table 500.

The search unit 124 can be implemented in various manners known in theart. A hardware search unit can include a processor, an arithmetic logicunit, or dedicated logic. Dedicated logic usually includes one or morecomparators as well as one or more counters. The amount of comparatorsand their length can determine the speed of the searching (matching)process, as multiple parallel comparisons can speed the matchingprocess. The search unit 124 conveniently receives a base address of theVCI/VPI table 500 and its length. It outputs a search result that canindicate that the searching failed or, if successful, indicate whichentry stored the matching VCI/VPI pair. It is noted that the search unit124 can include a mask that can allow it to mask (ignore from) portionsof the VPI fields or even ignore the whole VPI field.

Processor 126 is adapted to: (i) receive an indication that an ATM cellsuch as ATM cell 20 was received, (ii) use at least one header field ofthe received ATM cell 20 or a value associated with the ATM cell toselect a parameter table such as parameter table 300 of FIG. 4, (iii)access PHY table 400 of FIG. 4, (iv) process the content of a selectedentry of PHY table 400 to determine whether to perform ATM cellprocessing by the search unit 124, (v) initiate a VCI/VPI table searchby the search unit 124, (vi) receive the search result and accordinglydetermining, if the search succeeded, the location of the channelidentifier associated with the ATM cell and optionally also determinethe location of the policy identifier associated with ATM cell 20.

It is noted that ATM cell 20 can be further processed by communicationdevice 10 in view of the channel parameters associated with the channelidentifier. The ATM cell 20 can also be processed according to a policyassociated with the ATM cell 20.

According to an embodiment of the invention the processor 126 can selectthe group of memory entries (VCI/VPI table 500) out of multiple groupsof memory entries in response to the PHY value associated with thereceived ATM cell. Especially, the PHY value associated with thereceived ATM cell is used to retrieve an entry from PHY table 500 andthe content of that entry is used as an index to a certain VCI/VPItable. It is noted the one or more VCI/VPI tables can exists and that isonly one VCI/VPI table exists 500 there is no need to select betweendifferent VCI/VPI tables.

According to an embodiment of the invention if a VCI/VPI search failedthe processor 35 can request the hardware search unit to mask the VPIfield and look for a match between the value of the VCI field of thereceived ATM cell and the values of VCI fields within a selected VCI/VPItable.

FIG. 6 illustrates exemplary data structures 300, 400, 500 and 600,according to an embodiment of the invention.

Parameter table 300 points to various data structures including VPI/VCItable 500, PHY table 400 and policy identifier table 600. It is notedthat all these data structures can be stored in one or more memoryunits. Conveniently, they are stored at the same memory unit (such asshared data RAM memory unit 320) and the memory unit can be accessed bya processor (such as RISC processors 220 and 221) and by a search unit(such as search unit 124 that is a part of first or second hardwareaccelerators 223 and 224).

Simplified address calculations are enables by storing entries that arerelated to different channels and/or to different combinations of PHYfields in a linear manner. Thus, an address of an entry within certaintables can be calculated by adding the base address of the table to anindex. This is not necessarily so.

Conveniently, each group of PHYs (for example each UCC) shares a singleparameter table 300. Parameter table 300 includes the following fields:base address of channel identifiers list field (“CHANNEL_ID_BASE”) 302,base address of stored VCI/VPI table (“VCI/VPI_BASE”) 304, base addressof PHY table (“PHY_BASE”) 306, maximal size of group of entries withinthe VPI/VCI tables (“VCI/VPI_MAX_SIZE”) 308, maximal number of differentpolicy identifiers per channel (“MAX_POLICY”) 310, and base address ofpolicy identifiers list field (“POLICY_ID_BASE”) 312.

The linear manner in which data is stored can be illustrated by thefollowing two examples.

Assuming, for example, that (i) a channel identifier table is sorted ina linear manner, and especially that the channel identifier table issorted according to the PHY value of ATM cells, and that for a certainPHY value the entries are sorted in the same manner as the VCI/VPI tableis arranged, (ii) that a maximal number of entries per one PHY value isMAX_ID, (iii) that a match was found between the Q'th entry of VCI/VPItable 500 and the VCI and VPI fields of a received ATM cell, then theaddress of the channel identifier associated with that received ATM cell(“CHANNEL_ID_ADDRESS”) is calculated according to the followingequation:CHANNEL_ID_ADDRESS={CHANNEL_ID_BASE+(PHY value)*(MAX_ID)+Q}.

Yet for another example, the policy identifiers of each physical channelare stored in consecutive entries, while the maximal number of policyidentifiers that can be allocated to a channel is defined by MAX_POLICY310. Thus, the channel identifiers associated with the first channel arestores at an address range that ranges between POLICY_ID_BASE andbetween (POLICY_ID_BASE+MAX_POLICY).

When an ATM cell is received from a certain group of users the PHY valueassociated with it is used to select a PHY table entry. Conveniently,the entry is calculated according to the following equation: PHY addressentry address equals the sum of the base address of the PHY table plusthe product of: (i) the size of each PHY table entry, and (ii) the valueof the PHY value associated with the received ATM cell.

It is assumed that the k^(th) entry of the PHY table is selected. Thisentry is denoted 412 and includes the following fields, as illustratedin FIG. 7: CAL field 411, policy enable field 413, VCI/VPI table index415, selective VPI portion mask field 417 and size of a selected groupof VCI/VPI entries field 419.

The CAL field 411 determines if the received ATM cell should beprocessed by using the VPI/VCI table 500, or is to be processedaccording to another mechanism, such as but not limited to a hashmechanism. This field indicates whether the values of the received VCIand VPI fields belongs to a first predefined group of allowed VCI andVPI field values. ATM cells that have VCI and VPI field values that donot belong to that first predefined group are processed in other mannersand not by using the VCI/VPI table 500.

The policy enable field 413 indicates whether to apply a traffic policyor not. If a traffic policy is applied the policy identifier should becalculated so that the characteristics of that policy are retrievedusing the policy identifier table 600.

The VCI/VPI table index 415 is used to select a group of memory entriesthat are sent to (or accessed by) a hardware search unit. For example,FIG. 6 illustrates that this index of entry 412 points towards thebeginning of a selected group of entries 530 within VCI/VPI table 500.The VCI/VPI table is illustrated as having another group of entries 510.It is noted that the maximal size of each such group is limited byVCI/VPI_MAX_SIZE 308. It is further noted that the VCI/VPI table 500 caninclude one group of entries, two group of entries or more than twogroup of entries.

It is noted that the size of the VCI/VPI table 500 can be largelyreduced if different PHY values are associated with substantially thesame VCI/VPI value. Thus, VCI/VPI table indexes that belong to differentPHY table entries can point to the same group of memory entries thatform that same VCI/VPI table 500.

The selective VPI portion mask field 417 indicates whether during thesearch of matching VCI and VPI field values a portion of the VPI fieldshould be masked. This is useful in cases where the VPI field can beeither twelve-bit long (and in this case the VPI is not partiallymasked) or be eight-bit long (and in this case the ninth till twelvebits used for the GFC field and in this case they are masked).

The size of group of VCI/VPI entries field 419 is sent to the hardwaresearch unit and defines the VCI/VPI search limits. The inventors usedsizes such as 64, 32 and 16 but other sizes can be used.

Each VCI/VPI table 500 entry includes various fields. For simplicity ofexplanation one of these entries (entry 531) is illustrated in FIG. 8.Entry 530 includes the following fields—policy identifier index field532, GFC/VPI field 534, VPI field 536 and VCI field 538.

The policy identifier index field 532 is used to as an index to thepolicy identifier table 600.

The GFC/VPI field 534 can include a part of the VPI field or include aGFC field.

The values the VCI and VPI fields of the received ATM cell are comparedto the values of the VCI and VPI fields of VCI/VPI table 500. If a matchis found (the search succeeded) then the channel identifier of thereceived ATM cell can be determined.

Conveniently, a certain combination of VCI field and VPI field can belocated only at one VCI/VPI table and not in other tables.

FIG. 8 is a flow chart of method 700 for processing ATM cells, accordingto an embodiment of the invention.

Method 700 starts by stage 720 of defining various data structures orreceiving these data structures. These data structures usually remainthe same during the reception process of many ATM cells. Conveniently,stage 720 includes defining multiple groups of memory entries that storepairs of VCI and VPI field values, whereas different groups of memoryentries store different pairs of VCI and VPI values. Thus, a certaincombination of VCI field value and VPI field value can be found only inone group of memory entries.

Stage 720 is followed by stage 730 of receiving an ATM cell thatincludes a physical link identifier (PHY) field and a pair of virtualchannel identifier (VCI) and virtual path identifier (VPI) fields.Referring to the example set forth in previous drawings, input interface122 receives an ATM cell, such as ATM cell 20. In response it notifiesprocessor 126.

Stage 730 is followed by query stage 740 of determining if the values ofthe received VCI and VPI fields belong to the first predefined group ofVCI and VPI fields values. Referring to the example set forth in theprevious drawings, processor 126 uses the PHY value associated with ATMcell 20 and selects an entry, such as entry 410 from PHY table 400. Thevalue of CAL 411 field indicates whether to process the ATM cell 20using VCI/VPI table 500 or to perform another type of ATM processing.

If the answer is positive then query stage 740 is followed by stage 750,else it is followed by stage 745 of performing another type of ATM cellprocessing. The other type of processing can involve hashing, but thisis not necessarily so.

Stage 750 includes selecting a group of memory entries, out of a groupof memory entries, conveniently in response to the PHY value associatedwith the received ATM cell. It is noted that this stage is optional asin cases where VCI/VPI table 500 includes only a single group ofentries. In this case there is no need to select between the groups ofVCI/VPI table entries. The selection is conveniently defined by thevalue of the VCI/VPI index fields of the PHY table 400. According to anembodiment of the invention many different VCI/VPI table index fieldspoint to the same group of entries within the VCI/VPI table 500.

Conveniently, stage 750 includes providing to search unit 124, a baseaddress of the selected group of memory entries (such as VCI/VPI_BASE304), as well as the size of the group of memory entries (such asVCI/VPI_MAX_SIZE 308).

Stage 750 is followed by stage 760 of searching, within the group ofmemory entries, for a pair of VCI and VPI fields that match the VCI andVPI fields of the received ATM cell.

Conveniently, search unit 124 performs this search by serially (or in aparallel manner) comparing between the various entries of the smallgroup of entries and the value of the pair of VCI and VPI fields of thereceived ATM cell.

According to an embodiment of the invention stage 760 of searching caninvolve masking a portion of the VPI field, conveniently according to anATM cell type indication. The selective masking can be responsive to thevalue of selective VPI portion mask field 417.

Stage 760 includes providing a search result. The search result canindicate that there is no match (the match process failed) or that thematching process succeeded. In the former case the entry (location) ofthe stored matching pair of VCI and VPI fields can be provided as thesearch result.

If the search failed stage 760 can be followed by stage 770 (for exampleif the a VP switch enable flag is set) of performing a search within thegroup of memory entries, for a VCI field that matches the VCI field ofthe received ATM cell.

According to another embodiment of the invention if the search failedand optionally if the additional search of stage 770 failed the methodcan proceed by determining (stage 780) if the received ATM cell is acontrol cell (OAM cells), and in such a case the failure of the searchdoes not necessarily cause method 700 to discard (stage 785) thereceived ATM cell.

If the search succeeds then stage 760 is followed by stage 790 ofdetermining a channel identifier of the received ATM cell in response toa result of the searching process and in response to a PHY valueassociated with the received ATM cell. Conveniently, stage 790 includescalculating a location of the channel identifier in response to a PHYvalue associated with the received ATM cell, and in response to locationwithin the group of memory entries, of the pair of VCI field and VPIfield that match the VCI and VPI fields of the received ATM cell.Conveniently, the following equation is calculated:CHANNEL_ID_ADDRESS={CHANNEL_ID_BASE+(PHY value)*(MAX_ID)+Q}.

Stage 790 can be followed by stage 795 of determining an ATM cell policyidentifier. Stage 795 can be executed if a policy enable flag is set.

Stage 795 and 790 can be followed by stage 730. Thus, once a new ATMcell is received this ATM cell is processed.

It is noted that once the channel identifier is found the communicationdevice 10 can further process the ATM cell 20.

Variations, modifications, and other implementations of what isdescribed herein will occur to those of ordinary skill in the artwithout departing from the spirit and the scope of the invention asclaimed. Accordingly, the invention is to be defined not by thepreceding illustrative description but instead by the spirit and scopeof the following claims.

1. A method for processing ATM cells, the method comprises: receiving ata first input interface a first ATM cell that comprises a first virtualchannel identifier (VCI) field and a first virtual path identifier (VPI)field; in response to receiving the first ATM cell at the first inputinterface, selecting a first parameter table, wherein the firstparameter table is associated with the first input interface; selectinga first PHY table entry from a first PHY table to determine if the firstVCI and first VPI fields of the first ATM cell belong to a firstpredefined group of VCI and VPI fields, wherein selecting the first PHYtable entry is based upon a first PHY value from the first ATM cell,wherein the first PHY table is associated with the first parametertable; if the first VCI and first VPI fields of the first ATM cellbelong to the first predefined group of VCI and VPI fields then:performing a first search, by a hardware search unit and within a firstgroup of memory entries of a first VCI/VPI table associated with thefirst PHY table, for a first pair of VCI and VPI fields that matches thefirst VCI and first VPI fields of the first ATM cell; and determining afirst channel identifier of the first ATM cell in response to a resultof the first search; and processing the first ATM cell without using thefirst VCI/VPI table if the first VCI and first VPI fields of the firstATM cell do not belong to the first predefined group of VCI and VPIfields.
 2. The method according to claim 1, further comprising selectingthe first group of memory entries out of multiple groups of memoryentries in response to selecting the first PHY table entry.
 3. Themethod according to claim 2, wherein each group of memory entries of themultiple groups of memory entries stores different VCI and VPI fieldvalues.
 4. The method according to claim 1, wherein processing the firstATM cell comprises applying a hash mechanism.
 5. The method according toclaim 1, wherein determining the first channel identifier comprisescalculating an address of the first channel identifier based upon thefirst PHY value and on an address of the first pair of VCI and VPIfields that matches the first VCI and first VPI fields of the first ATMcell.
 6. The method according to claim 1, wherein performing the firstsearch further comprises selectively masking a portion of the first VPIfield.
 7. The method according to claim 1, further comprising performinga second search, within the first group of memory entries, for a VCIfield that matches the first VCI field of the first ATM cell, inresponse to a failure of the first search, within the first group ofmemory entries, for the first pair of VCI and VPI fields that match thefirst VCI and first VPI fields of the first ATM cell.
 8. The methodaccording to claim 1, further comprising determining an ATM cell policyidentifier.
 9. The method according to claim 1, further comprisingdetermining if values of the first VCI field and first VPI field belongto the first predefined group of VCI and VPI field values based on acontent of a field stored in the first PHY table entry.
 10. The methodaccording to claim 1, further comprising: receiving at a second inputinterface a second ATM cell that comprises a second VCI field and asecond VPI field; in response to receiving the second ATM cell at thesecond input interface, selecting a second parameter table, wherein thesecond parameter table is associated with the second input interface;selecting a second PHY table entry from the PHY table to determine ifthe second VCI and second VPI fields of the second ATM cell belong to asecond predefined group of VCI and VPI fields, wherein selecting thesecond PHY table entry is based upon a second PHY value from the secondATM cell, wherein the PHY table is associated with the second parametertable; if the second VCI and second VPI fields of the second ATM cellbelong to the second predefined group of VCI and VPI fields then:performing a second search, by a second hardware search unit and withina second group of memory entries of a VCI/VPI table which may be thefirst VCI/VPI table or a different VCI/VPI table, for a second pair ofVCI and VPI fields that matches the second VCI and second VPI fields ofthe second ATM cell; and determining a second channel identifier of thesecond ATM cell in response to a result of the second search; andprocessing the second ATM cell without using the VCI/VPI table which maybe the first VCI/VPI table or a different VCI/VPI table if the secondVCI and second VPI fields of the second ATM cell do not belong to thesecond predefined group of VCI and VPI fields.
 11. The method accordingto claim 1, wherein determining if the first VCI and first VPI fields ofthe first ATM cell belong to a first predefined group of VCI and VPIfields is based upon a field of the first PHY table entry.
 12. Acommunication device, comprising: an input interface adapted to receivea first ATM cell that comprises a first virtual channel identifier (VCI)field and first virtual path identifier (VPI) field; a search unit,adapted to: select a first parameter table, wherein the first parametertable is associated with the input interface; select a first PHY tableentry from a first PHY table based upon a first PHY value from the firstATM cell, wherein the first PHY table is associated with the firstparameter table; determine if the first VCI and first VPI fields of thefirst ATM cell belong to a first predefined group of VCI and VPI fieldsbased upon the selecting of the first PHY table entry; and perform afirst search, within a first group of memory entries of a first VCI/VPItable that is stored in a memory unit, for a first pair of VCI and VPIfields that has values that match the values of the first VCI and firstVPI fields of the first ATM cell, if the first VCI and first VPI fieldsof the first ATM cell belong to the first predefined group of VCI andVPI fields; and a processor, coupled to the search unit, wherein theprocessor is adapted to determine a first channel identifier of thefirst ATM cell in response to a result of the first search; wherein thecommunication device is configured to process the first ATM cell withoutusing the first VCI/VPI table if the first VCI and first VPI fields ofthe first ATM cell do not belong to the first predefined group of VCIand VPI fields.
 13. The communication device according to claim 12,wherein the processor is further adapted to select the first group ofmemory entries out of multiple groups of memory entries in response toselecting the first PHY table entry.
 14. The communication deviceaccording to claim 13, wherein each group of memory entries of themultiple groups of memory entries stores different VCI and VPI values.15. The communication device according to claim 12, wherein theprocessor is further adapted to calculate an address of the firstchannel identifier based upon the first PHY value and on an address ofthe first pair of VCI and VPI fields that matches the first VCI andfirst VPI fields of the first ATM cell.
 16. The communication deviceaccording to claim 12, wherein the search unit is further adapted toselectively mask a portion of the first VPI field during the firstsearch.
 17. The communication device according to claim 12, wherein thesearch unit is further adapted to search, within the first group ofmemory entries, for a VCI field that matches the first VCI field of thefirst ATM cell, in response to a failure of the first search, within thefirst group of memory entries, for the first pair of VCI and VPI fieldsthat matches the first VCI and first VPI fields of the first ATM cell.18. The communication device according to claim 12, further adapted todetermine an ATM cell policy identifier.
 19. The communication deviceaccording to claim 12, wherein the communication device is configured toprocess the first ATM cell by applying a hash mechanism if the first VCIand first VPI fields of the first ATM cell do not belong to the firstpredefined group of VCI and VPI fields.
 20. The communication deviceaccording to claim 12, wherein the processor is further adapted to reada field of the first PHY table entry that is indicative of whether toprocess the first ATM cell using the first VCI/VPI table or performanother type of ATM processing.
 21. The communication device accordingto claim 12, further comprising: a second input interface adapted toreceive a second ATM cell that comprises a second VCI field and a secondVPI field; a second search unit adapted to: select a second parametertable, wherein the second parameter table is associated with the secondinput interface; select a second PHY table entry from the PHY tablebased upon a second PHY value from the second ATM cell, wherein the PHYtable is associated with the second parameter table; determine if thesecond VCI and second VPI fields of the second ATM cell belong to asecond predefined group of VCI and VPI fields based upon the selectingof the second PHY table entry; and perform a second search, within asecond group of memory entries of a VCI/VPI table which may be the firstVCI/VPI table or a different VCI/VPI table and that is stored in thememory unit, for a second pair of VCI and VPI fields that has valuesthat match the values of the second VCI and second VPI fields of thesecond ATM cell, if the second VCI and second VPI fields of the secondATM cell belong to the second predefined group of VCI and VPI fields;and a second processor adapted to determine a second channel identifierof the second ATM cell in response to a result of the second search; andthe communication device is configured to process the second ATM cellwithout using the VCI/VPI table which may be the first VCI/VPI table ora different VCI/VPI table if the second VCI and second VPI fields of thesecond ATM cell do not belong to the second predefined group of VCI andVPI fields.
 22. The communication device according to claim 12, whereindetermining if the first VCI and first VPI fields of the first ATM cellbelong to a first predefined group of VCI and VPI fields is based upon afield of the first PHY table entry.